package com.xdcplus.web.service.bd;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.bd.BdSupplierDTO;
import com.xdcplus.web.common.pojo.dto.bd.BdSupplierFilterDTO;
import com.xdcplus.web.common.pojo.entity.bd.BdSupplier;
import com.xdcplus.web.common.pojo.vo.bd.BdSupplierVO;

import java.util.List;


/**
 * 供应商表(BdSupplier)表服务接口层
 *
 * @author Fish.Fei
 * @since 2023-01-31 17:36:34
 */
public interface BdSupplierService extends BaseService<BdSupplier, BdSupplier, BdSupplierVO> {

    /**
     * 添加供应商表(BdSupplier)
     *
     * @param bdSupplierDTO 供应商表(BdSupplierDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveBdSupplier(BdSupplierDTO bdSupplierDTO);

    /**
     * 修改供应商表(BdSupplier)
     *
     * @param bdSupplierDTO 供应商表(BdSupplierDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateBdSupplier(BdSupplierDTO bdSupplierDTO);

    /**
     * 批量保存或更新供应商表(BdSupplier)
     *
     * @param bdSupplierList 供应商表(BdSupplierList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<BdSupplier> bdSupplierList);

    /**
     * 批量保存或更新供应商表(BdSupplierDTOList)
     *
     * @param bdSupplierDTOList 供应商表(BdSupplierDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<BdSupplierDTO> bdSupplierDTOList);

    /**
     * 删除供应商表(BdSupplier)
     *
     * @param id 供应商表(BdSupplier)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteBdSupplierLogical(Long id);
    
    Boolean deleteBdSupplierByIds(String ids);

    /**
     * 查询供应商表(BdSupplier)
     *
     * @param bdSupplierFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<BdSupplierVO>} 状态信息
     */
    List<BdSupplierVO> queryBdSupplierVOList(BdSupplierFilterDTO bdSupplierFilterDTO);

    /**
     * 查询供应商表(BdSupplier)
     *
     * @param bdSupplierFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<BdSupplierVO>} 状态信息
     */
    PageVO<BdSupplierVO> queryBdSupplier(BdSupplierFilterDTO bdSupplierFilterDTO);

    /**
     * 查询一个
     *
     * @param id 供应商表(BdSupplier)主键
     * @return {@link BdSupplierVO} 供应商表(BdSupplier)信息
     */
    BdSupplierVO queryBdSupplierById(Long id);

    String getSupplierNameById(Long id);

    BdSupplierVO queryBdSupplierVoBySupplierCode(String supplierCode);

}
